package ar.com.tallerdos.smartdinner.sync;

import ar.com.tallerdos.smartdinner.util.MyApplication;

public class MaestroSincronizador extends Thread {

    private Boolean seguirEjecutandose = true;
    private static MaestroSincronizador instancia;

    public static MaestroSincronizador getInstancia() {
	if (instancia == null) {
	    instancia = new MaestroSincronizador();
	}
	return instancia;
    }

    private MaestroSincronizador() {
	// Privado para implementar el singleton
    }
    
    @Override
    public synchronized void start() {
	this.seguirEjecutandose = true;
        super.start();
    }

    @Override
    public void run() {
	while (seguirEjecutandose) {
	    RubrosSincronizador rubrosSync = new RubrosSincronizador();
	    rubrosSync.execute();

	    MesasSincronizador mesasSync = new MesasSincronizador(MyApplication.getAppContext());
	    mesasSync.execute();
	    
	    PedidosSincronizador pedidosSync = new PedidosSincronizador();
	    pedidosSync.execute();
	    
	    try {
		Thread.sleep(20000);
	    } catch (InterruptedException e) {
		e.printStackTrace();
		seguirEjecutandose = false;
	    }
	}
    }

    @Override
    protected void finalize() throws Throwable {
	super.finalize();
	this.seguirEjecutandose = false;
    }

    public Boolean getSeguirEjecutandose() {
        return seguirEjecutandose;
    }

    public void parar() {
	this.seguirEjecutandose = false;
    }

    
}
